package br.com.sgpv2.hibernate.entidade;

import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;

import br.com.sgpv2.entity.organograma.Entidade;
import br.com.sgpv2.hibernate.infra.SGPGenericDAO;

@Repository(value = "entidadeRepository")
public class EntidadeHibernateDao extends SGPGenericDAO<Entidade> implements EntidadeRepository {

	/**
	 * Construtor padrão.
	 * 
	 */
	@Autowired
	public EntidadeHibernateDao(
			@Qualifier("sessionFactory") SessionFactory factory) {
		super(Entidade.class);
		super.setSessionFactory(factory);
	}

	@Override
	public Entidade buscarEntidadePorNome(String nome) {
		Criteria criteria = createCriteria(Entidade.class);
		criteria.add(Restrictions.eq("nome", nome));

		return (Entidade) criteria.uniqueResult();
	}
}
